"""
    补充
        一.Python内存管理机制
            1. 引用计数:每个数据都存储着被变量绑定的次数
                       当为0时被销毁.
                       当遇到循环引用时,会导致内存泄露.
                a = 10
                b = a
                此时数据10的引用计数为2

                del a
                b = 20
                此时数据10的引用计数为0

                因为循环引用,导致内存泄露的代码:
                list01 = []
                list02 = []
                list01.append(list02)
                list02.append(list01)
                此时列表的引用计数为2
                del list01,list02
                此时列表的引用计数为1
                应该销毁但是不能销毁

            2. 标记清除
                全盘扫描内存空间,检查数据是否可用.
                如果不可用则做出清除的标记.
                缺点:全盘扫描过慢

            3. 分代回收
                运行程序时,将内存分为小中大三代.
                创建新数据时,在小代分配空间.
                在内存告急时,触发"标记清除".
                将有用的数据升代,没用的数据释放
            优化内存:
                尽少产生垃圾,对象池,配置垃圾回收器

"""
# 对象池
# 每次创建数据时,都先判断池中是否有相同成员
# 如果有直接返回数据地址,没有再开辟空间存储.
data01 = "张三"
data02 = "张三"
print(id(data01))
print(id(data02))
